Можно. Только осторожно).
Конец статьи.
Ну ладно, не конец.
Обозначу контекст, чтоб сразу удобно было выключить, если чувствуешь, что не подходит: алго, бэктест стратегии сразу на большом кол-ве инструментов – т.е. скорее всего речь про акции чаще всего, а в данном посте – именно про акции.
Я называю это инерцией тикеров, другие это, может, никак не называют. Идея в чем: если стратегия норм, то она будет перформить на всем датасете нормально. Но конечно же для одних инструментов стратегия будет подходить больше, для других меньше. Для меня абсолютно норм тема торговать стратегию на всем дата-сете сплошняком. Но можно ли это улучшить. Можно ли тупо взять успешные в этой стратегии акции в прошлом и только их торговать. Тут, если прислушаться, можно услышать со всех сторон встревоженный шёпот: переподгонка… переподгонка… А посмотрим-ка. Как оказалось, зависит от стратегии. Где-то можно, где-то нельзя.
Для оценки я сделал следующее:
Расшифрую название:
Речь о том, что некоторые стратегии генерируют сигналы (купить открыть, продать закрыть, купить закрыть, продать открыть), но не все сигналы достаточно хороши и не все достаточно хороши для данного момента. А деньги получает сигнал, который достаточно хорош, который не достаточно хорош – так и остается просто сигналом, не превращается в ордер.
А теперь подробней про зачем это:
У меня сейчас попроще все реализовано, но всегда смотришь в будущее чтоб что-то улучшить. Конкурировать за деньги сигналы могут по-разному – могут совсем глобально – когда есть только сущность сигнала и деньги, и не важно что за стратегии и т.д., лучшие сигналы получают деньги, худшие сосут… лапу. Такой вид конкуренции чуть более революционен и имеет некоторые нюансы, поэтому пока останется за скобками (в частности риск вмешаться в диверсификацию, которая обеспечивается разнообразием стратегий). В данном посте речь о конкуренции за деньги в пределах одной стратегии.
Велс позволяет тестить торговые стратегии, но предусмотрены функциональные возможности и для торговли. Имеется API для реализации коннекторов к брокерскому ПО. Один из способов запилить коннеткор – сподвигнуть разработчиков это сделать. Они сделали виш-лист, куда можно закидывать задачи, ребята гибко смотрят на востребованность (по кол-ву лайков) и берут в работу самый востребованные запросы. Хотя вот прям недавно намекнули, что вообще-то за ними последнее слово здесь и могут и не взять в работу.
В общем есть в виш-листе задача запилить коннектор для Квика. Надо совсем немного лайков чтобы поднять задачу достаточно чтоб они её взяли в работу. Нужно зарегаться на форуме Wealth-lab 7 (ну или просто зайти если акк есть) и лайкнуть этот пост (который по совместительству запрос на разработку коннектора):
https://www.wealth-lab.com/Discussion/Request-a-broker-provider-for-Russian-market-QUIK-5473
Кому этот коннектор и сам велс могут быть интересны. Всем алго-трейдерам. И не очень алго – имеется возможность писать стратегии через конструктор – без кодинга, тестировать эти стратегии и потом вот торговать (если будет коннектор к Квику, то и Россию). По деньгам 300 или 400 баксов в год, что, кажется, дешевле выходит, чем TSLab.
Если интересна эта тема – лайкайте пост по ссылке. Если какие-то вопросы – пишите, я в теме.
Коннектор к Квику живи!
Т.е. закономерно, что туда кто-то попадет, закономерно какая доля туда примерно попадет. Но закономерно и то, кто куда попадет.
Речь, понятно, о распределениях случайной величины. Чтоб не уходить в абстрактные дебри (с риском потери нити) сразу на примере. Случайная величина – среднегодовая доходность трейдера через 5 лет торговли.
Просто часто слышу, что постоянно все списывают на ошибки выжившего, на распределения. Из 1000 фондов 3 перформят очень хорошо, а в среднем 1000 очень даже хреново – ну эти парни случайно попали в хвост, через пару лет на их месте будут другие. Несколько чуваков отлично торгуют руками – ну, нет смысла даже смотреть что они делают, случайно залезли в хвост, ошибка выжившего – мы на это не купимся, не будем смотреть что и как они делают.
Булщит по-моему.
Распределения случайной величины выглядят так (нормальное распределение, например) не просто так. Можно взять простую модель и разложить результат как совокупность влияния факторов. Так вот если все факторы складываются хорошо, то и результат скорее всего будет хороший и результат попадет в положительный хвост. Так вот эти самые факторы обычно вполне себе контролируемые вещи. В нашем примере с трейдером, если чел четко анализирует обратную связь и улучшается на основе нее (один фактор), не глуп (другой фактор), имеет некоторый благоприятствующий психотип (ещё фактор) и т.д., то он, конечно, может попасть в самое любое место распределения, но мат. ожидание все-таки будет прилично смещено относительно общей выборки.
Придумал интересный подход. Мож кого натолкнет на интересные идеи какие-то.
Сейчас начал торговать ML модели. С практической стороны с моделями какая сложность – там есть процесс предобработки данных – генерация признаков в основном (если с точки зрения трейдинговых данных заходить), поэтому нельзя просто сохранить модель, в другом месте загрузить и она будет работать, надо сохранить, загрузить, предобработать исходные данные к тому виду, к которому приучена модель и только тогда она будет работать. К счастью тонна сопутствующих трудозатрат убирается такой классной штукой как пайплайн – сейчас моя модель это 2 пайплайна – один для предобработки данных, другой для предикта (сама модель). Т.е. я где-то что-то рисечу, дальше автоматика упаковывает в пайплайны (2 на модель, как сказал). Все, могу кинуть эти 2 файла в папку с моделями, откуда их забирает торгующий блок и, собственно, отторговывает. Красота. Всякие мета-данные – тикер там, время удержания позиции и прочие мета-логики упаковываю или в сам пайплайн или в название файла. Красота.
Все-таки все люди супер разные, очередной раз убеждаюсь. Даже вот когда речь заходит о рисечах и бэктестах.
Сразу скажу, что это не полноценная исчерпывающая классификация, а всего лишь набор некоторых архетипов, не исчерпывающий набор и, возможно, не самые типичные архетипы даже.
И да, все персонажи вымышлены, все совпадения случайны))).
Архетипы алготрейдеров:
1. Просеиватель. Прочесывает все что можно в поисках простых, но ± законченных идей, берет, идею, тестит, выкидывает если не работает, ищет дальше, способен генерировать идеи и сам, работает с идеями в таком же ключе. Считает, что успех в том, чтобы просеять как можно больше простых идей, чтобы именно за счет этого найти большое число интересных идей.
2. Мега-мозг — перелопачивает тонны литературы, исследований, знает сто-пицот математических методов, теорем, вероятностных распределений. Среди знакомых ему формул, теорем и распределений, вероятно, даже встречаются те, где в названии не две фамилии, а 3, но это не точно. Считает, что успех в том, чтобы быть на острие научного прогресса, поглощать передовые исследования.
Algo vs ручная торговля, ну или системная vs ручная торговля – классический холивар.
А что если совместить плюсы одного и плюсы другого, подавив минусы одного и другого, есессно.
Кратко обозначу ключевые плюсы минусы отдельных подходов сначала:
АЛГО:
Плюсы – быстрое исполнение, можно проверить идеи, можно одновременно отслеживать большое число инструментов, паттернов и сигналов.
Минусы – не все можно и быстро формализуется.
РУЧНАЯ ТОРГОВЛЯ:
Плюсы – можно торговать сложно-формализуемые вещи, интуиция и чуйка если они работают.
Минусы – эмоции, сложно торговать много всего одновременно, скорость исполнения.
Давайте объединять.
Конечно, я не открыл Америку, так уже делают, уже объединяют, все по-разному. Можно слепливать как попало, не особо оглядываясь на плюсы минусы, на синергетический эффект, руководствуясь какой-то другой логикой. Например, встречаемая в природе форма симбиоза: алгоритмические системы, бэктесты, о исполнение руками. На мой взгляд – треш-гибрид, единственное оправдание которому – лень, лень пилить экзекьюшен.
Обычно человек ходит по колее, но иногда система сбоит и случаются «эмм, а чё я раньше не задумывался, что можно…» и «хм, а ведь можно попробовать сделать…». В такие моменты можно выскакивать за пределы колеи и переходить в новую более интересную, выходить из зоны болотного комфорта в зону воодушевляющего дискомфорта.
Всегда ходил по колее (вернее, замкнутому циклу): математика не моё, у меня много своих преимуществ, математик не в их числе, не всем дано. И к нему прицеплялось: машинное обучение, нейронные сети, статистика и тер.вер. требуют математики – ну, значит, тоже не мое, ну значит без этого. А тут че-то осенило: а какого хрена!? Кстати, тот случай когда реклама сподвигла (назойливая реклама курсов обучения по Data Science). Сначала отмахивался, а в какой-то момент подумал: а почему бы и нет? – Да, страшно, да лень, да не уверен, что получится, да долго, да нет уверенности, что поможет и т.д. Хорошо подумал, уверенным движением руки смахнул все эти иррациональные возражения и страхи со стола и записался на курс.
Так что скоро, надеюсь, например, не буду просто пролистывать посты уважаемого А.Г., а, возможно, буду извлекать смысл.
Кстати, уже только при прочтении программы курса словил пару инсайтов применительно к фин. рынкам.
Глаза загорелись. Будет интересно.
Немного порассуждаю про уровень абстракции в стратегиях и про ООП как инструмент для этого.
Да, чтобы войти на пересечении скользящих и выйти по трейлингу на основе параболика ООП нафиг не нужен. Но я мыслю более реальными, «физическими» категориям. В смысле более живыми. Импульс, консолидация, да тот же тренд. Да, теоретически я могу использовать стандартные индикаторы, но у меня всегда индикатор – всего лишь отражение какого-то физического процесса. Но об этом я частенько упоминал, сейчас не совсем об этом.
Когда ты дата-майнишь, рисечишь идеи для стратегий тебе позарез нужно конкурентное преимущество. Перебирать и комбинировать сигналы разных индикаторов – это давно не работает. Конкурентные преимущества бывают разные: преимущества могут быть у бога математики или физики, у бога статистики и аналогичных наук, преимущества могут быть у лютых технарей, которые могут покорить космические скорости вычислений и исполнения.
Сейчас попробую выделить ещё один вид преимущества, ну или вернее ниша, в которой, как мне кажется, пасется не так много народу. Я говорю про нишу высокоуровневых абстракций.
Что я имею в виду, зачем это надо, при чем здесь ООП.